home *** CD-ROM | disk | FTP | other *** search
- //-------------------------------------------
- // FileListView.cs ⌐ 2001 by Charles Petzold
- //-------------------------------------------
- using System;
- using System.Diagnostics; // Para Process.Start
- using System.Drawing;
- using System.IO;
- using System.Windows.Forms;
-
- class FileListView: ListView
- {
- string strDirectory;
-
- public FileListView()
- {
- View = View.Details;
-
- // Obtener imßgenes para los iconos de archivo.
-
- ImageList imglst = new ImageList();
- imglst.Images.Add(new Bitmap(GetType(), "DOC.BMP"));
- imglst.Images.Add(new Bitmap(GetType(), "EXE.BMP"));
-
- SmallImageList = imglst;
- LargeImageList = imglst;
-
- // Crear columnas.
-
- Columns.Add("Nombre", 100, HorizontalAlignment.Left);
- Columns.Add("Tama±o", 100, HorizontalAlignment.Right);
- Columns.Add("Modificado", 100, HorizontalAlignment.Left);
- Columns.Add("Atributo", 100, HorizontalAlignment.Left);
- }
- public void ShowFiles(string strDirectory)
- {
- // Guardar el nombre de directorio como un campo.
-
- this.strDirectory = strDirectory;
-
- Items.Clear();
- DirectoryInfo dirinfo = new DirectoryInfo(strDirectory);
- FileInfo[] afileinfo;
-
- try
- {
- afileinfo = dirinfo.GetFiles();
- }
- catch
- {
- return;
- }
-
- foreach (FileInfo fi in afileinfo)
- {
- // Crear ListViewItem.
-
- ListViewItem lvi = new ListViewItem(fi.Name);
-
- // Asignar ImageIndex basßndose en una extensi≤n de nombre de archivo.
-
- if (Path.GetExtension(fi.Name).ToUpper() == ".EXE")
- lvi.ImageIndex = 1;
- else
- lvi.ImageIndex = 0;
-
- // A±adir los subelementos tama±o de archivo y fecha modificaci≤n.
-
- lvi.SubItems.Add(fi.Length.ToString("N0"));
- lvi.SubItems.Add(fi.LastWriteTime.ToString());
-
- // A±adir subelemento de atributo.
-
- string strAttr = "";
-
- if ((fi.Attributes & FileAttributes.Archive) != 0)
- strAttr += "A";
-
- if ((fi.Attributes & FileAttributes.Hidden) != 0)
- strAttr += "H";
-
- if ((fi.Attributes & FileAttributes.ReadOnly) != 0)
- strAttr += "R";
-
- if ((fi.Attributes & FileAttributes.System) != 0)
- strAttr += "S";
-
- lvi.SubItems.Add(strAttr);
-
- // A±adir ListViewItem completado a FileListView.
-
- Items.Add(lvi);
- }
- }
- protected override void OnItemActivate(EventArgs ea)
- {
- base.OnItemActivate(ea);
-
- foreach (ListViewItem lvi in SelectedItems)
- {
- try
- {
- Process.Start(Path.Combine(strDirectory, lvi.Text));
- }
- catch
- {
- continue;
- }
- }
- }
- }
-